home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / ftp_root.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  115 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(10088);
  10.  script_version ("$Revision: 1.19 $");
  11.  script_cve_id("CAN-1999-0527");
  12.  name["english"] = "Writeable FTP root";
  13.  name["francais"] = "On peut Θcrire sur la racine du rΘpertoire FTP";
  14.  name["portugues"] = "Escrita permitida no diret≤rio raiz do servidor FTP";
  15.  script_name(english:name["english"], francais:name["francais"], portugues:name["portugues"]);
  16.  
  17.  desc["english"] = "It is possible to write on the root directory
  18. of this remote anonymous FTP server. This allows
  19. an attacker to upload '.rhosts' or '.forward' files, 
  20. or to turn your FTP server in to a warez server.
  21.  
  22. Solution : chown root ~ftp && chmod 0555 ~ftp.
  23.  
  24. Risk factor : High";
  25.  
  26.  desc["francais"] = "Il est possible d'Θcrire α la racine
  27. de ce serveur FTP anonyme. Cela permet α des
  28. pirates d'uploader des fichiers '.rhosts' ou
  29. '.forward', ou alors de transformer votre
  30. serveur FTP en serveur de warez.
  31.  
  32. Solution : chown root ~ftp && chmod 0555 ~ftp.
  33.  
  34. Facteur de risque : SΘrieux";
  35.  
  36.  
  37.  desc["portugues"] = "╔ possφvel escrever no diret≤rio raiz deste
  38. servidor FTP logando como anonymous. Isto possibilita α crackers
  39. fazerem upload de arquivos '.rhosts' ou '.forward', ou transformar
  40. seu servidor FTP num servidor warez.
  41.  
  42. Soluτπo : chown root ~ftp && chmod 0555 ~ftp.
  43.  
  44. Fator de risco: SΘrio";
  45.  
  46.  
  47.  script_description(english:desc["english"], francais:desc["francais"],
  48.         portugues:desc["portugues"]);
  49.  
  50.  summary["english"] = "Attempts to write on the remote root dir";
  51.  summary["francais"] = "Essaye d'Θcrire α la racine";
  52.  summary["portugues"] = "Tentativa de escrever no diret≤rio raiz do servidor FTP remoto";
  53.  
  54.  script_summary(english:summary["english"], francais:summary["francais"],
  55.          portugues:summary["portugues"]);
  56.  
  57.  script_category(ACT_ATTACK);
  58.  
  59.  
  60.  script_copyright(english:"This script is Copyright (C) 1999 Renaud Deraison",
  61.         francais:"Ce script est Copyright (C) 1999 Renaud Deraison",
  62.         portugues:"Este script Θ Copyright (C) 1999 Renaud Deraison");
  63.  family["english"] = "FTP";
  64.  family["francais"] = "FTP";
  65.  family["portugues"] = "FTP";
  66.  script_family(english:family["english"], francais:family["francais"],
  67.          portugues:family["portugues"]);        
  68.  script_dependencie("find_service.nes", "ftp_anonymous.nasl");
  69.  script_require_keys("ftp/login");
  70.  script_require_ports("Services/ftp", 21);
  71.  exit(0);
  72. }
  73.  
  74. #
  75. # The script code starts here
  76. #
  77.  
  78. port = get_kb_item("Services/ftp");
  79. if(!port)port = 21;
  80.  
  81. if(get_port_state(port))
  82. {
  83. login = get_kb_item("ftp/login");
  84. password = get_kb_item("ftp/password");
  85.  
  86.  
  87. if(login)
  88. {
  89.  soc = open_sock_tcp(port);
  90.  if(!soc)exit(0);
  91.  if(ftp_log_in(socket:soc, user:login,pass:password))
  92.  {
  93.   data = string("CWD /\r\n");
  94.   send(socket:soc, data:data);
  95.   a = recv_line(socket:soc, length:1024);
  96.   pasv = ftp_get_pasv_port(socket:soc); 
  97.   data = string("STOR nessus_test\r\n");
  98.   send(socket:soc, data:data);
  99.   r = recv_line(socket:soc, length:3);
  100.   if((r == "425")||(r == "150"))
  101.   {
  102.    data = string("DELE nessus_test\r\n");
  103.    send(socket:soc,data:data);
  104.    security_hole(port);
  105.    wri = get_kb_item("ftp/writeable_dir");
  106.    if(!wri)set_kb_item(name:"ftp/writeable_dir", value:"/");
  107.    set_kb_item(name:"ftp/writeable_root", value:TRUE);
  108.   }
  109.  data = string("QUIT\r\n");
  110.  send(socket:soc, data:data);
  111.  }
  112. close(soc);
  113. }
  114. }
  115.